package com.thb.pay.core.annotation;

import org.springframework.core.Ordered;
import org.springframework.core.annotation.Order;

import java.lang.annotation.*;

/**
 * 分布式接口限流注解
 */
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Order(Ordered.LOWEST_PRECEDENCE)
public @interface RateLimiterRequired {

    /**
     * 是否为分布式限流 默认分布式
     * @return
     */
    boolean isDistributed() default true;

    /**
     * 默认当次1s
     * @return
     */
    int limitSecond() default 1;
    /**
     * 默认 1s 500/s  的访问量限制
     * @return
     */
    int limitCount() default 500;
}
